package com.ntd.study.base.type.arrays;

import java.util.*;
import java.util.function.Consumer;

/**
 * 集合相关内容学习
 * Collect 用于存储 value 集合
 * Map 用于存储 key-value 集合
 */
public class CollectDemo {
    /**
     * 迭代器操作对象
     */
    Iterator iterator = new Iterator() {
        @Override
        public boolean hasNext() { // 必须重写
            return false;
        }

        @Override
        public Object next() { // 必须重写
            return null;
        }

        @Override
        public void remove() {
            // 父类默认抛出异常
        }

        @Override
        public void forEachRemaining(Consumer action) { // 操作集合的剩余可操作元素
        }
    };
    /**
     * 迭代器
     */
    Iterable iterable = new Iterable() {
        @Override
        public Iterator iterator() { // 返回迭代器操作对象-主要用于顺寻遍历-单线程
            return null;
        }

        @Override
        public void forEach(Consumer action) {
            // jdk8 遍历方法
        }

        @Override
        public Spliterator spliterator() { // 分割迭代器-该方法返回一个分割迭代器（主要用于多线程操作）
            return null;
        }
    };

    /**
     * 集合类型接口
     * 实现了 iterable 接口
     * 子接口 Queue、List、Set
     * 实现类-主要： ArrayList、Vector、LinkedList
     */
    Collection collection;

    /**
     * 抽象集合类
     * 包含了一些集合的基本扩展属性
     * 实现了 Collection
     */
    AbstractCollection abstractCollection;

}
